import java.util.Scanner;
import java.util.*;
public class test {
    /*给你一个整数数组 arr。你可以从中选出一个整数集合，并删除这些整数在数组中的每次出现。
    返回 至少 能删除数组中的一半整数的整数集合的最小大小。*/
    public static int check(int[] nums) {
        Map<Integer,Integer>map=new HashMap<>();
        for(int i=0;i<nums.length;i++){
            map.put(nums[i],map.getOrDefault(nums[i],0)+1);
        }
        if(map.size()==1)return 1;
        List<Integer>list=new ArrayList<>(map.values());
        //对每个数的频率降序
        Collections.sort(list,Collections.reverseOrder());
        int count=0;
        int sum=0;
        for(int x:list){
            count++;
            sum+=x;
            if(sum>=nums.length/2)break;
        }
        return count;
    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=sc.nextInt();
        }
        int result=check(nums);
        System.out.println(result);
    }
}
